package cn.tedu.storedemo.config;

import cn.tedu.storedemo.interceptor.LoginInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.util.ArrayList;
import java.util.List;

@Configuration
public class InterceptorConfigurer implements WebMvcConfigurer {

    @Autowired
    @Qualifier("loginInterceptor")
    HandlerInterceptor interceptor;

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 注册拦截器
        InterceptorRegistration ir=registry.addInterceptor(interceptor);
        // 设置黑名单 /** 表示通配多级目录
        ir.addPathPatterns("/**");

        // 创建保存放行路径的集合
        List<String> list=new ArrayList<>();
        // 添加静态资源路径
        list.add("/bootstrap3/**");
        list.add("/css/**");
        list.add("/images/**");
        list.add("/js/**");
        list.add("/index.html");
        // 添加注册和登录页面路径
        list.add("/web/register.html");
        list.add("/web/login.html");
        // 添加注册和登录控制器路径
        list.add("/users/regist");
        list.add("/users/login");
        list.add("/users/checkUsername");
        list.add("/districts/**");
        // 添加白名单
        ir.excludePathPatterns(list);
    }

}
